home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / Dmod / dmod_dbplayer / example / test.d next >
Encoding:
Text File  |  2002-10-28  |  1.6 KB  |  64 lines

  1. MODULE    'libraries/dbplayerbase',
  2.             'libraries/dbplayer',
  3.             'dbplayer'
  4.  
  5. DEF    Mod[]:CHAR,ModSize
  6.  
  7. DEF    DBPlayerBase:PTR TO DBPlayerBase
  8.  
  9. PROC main()
  10.     DEF    fp
  11.     DEFUL    InstrNum,ChanNum,PattNum
  12.     DEF    ModName[]:CHAR,InstNames[][]:CHAR
  13.     DEFL    i
  14.  
  15.     IFN DBPlayerBase:=OpenLibrary('dbplayer.library',DBPLAYER_VERSION) THEN Raise("DBPL")
  16.  
  17.     ModSize:=FileLength(arg)
  18.     IFN Mod:=New(ModSize) THEN Raise("MEM")
  19.  
  20.     IF fp:=Open(arg,OLDFILE)
  21.         Read(fp,Mod,ModSize)
  22.         Close(fp)
  23.     ELSE Raise("FILE")
  24.     IF Long(Mod)<>"DBM0" THEN Raise("FILE")
  25.  
  26.     IF DBM_StartModule(Mod,ModSize,-1,0,DBF_AUTOBOOST) THEN Raise("PLAY")
  27.     PrintF('Playing... (press CTRL+C to stop)\n')
  28.  
  29.     DBM_GetModuleAttr(
  30.         DBMATTR_InstNum,&InstrNum,
  31.       DBMATTR_ChanNum,&ChanNum,
  32.       DBMATTR_PattNum,&PattNum,
  33.       DBMATTR_ModName,&ModName,
  34.       DBMATTR_InstNames,&InstNames,
  35.       TAG_DONE)
  36.     PrintF(
  37.         'module name: \s\n'+
  38.         '# of instruments: \d\n'+
  39.         '# of channels:    \d\n'+
  40.         '# of patterns:    \d\n',
  41.         ModName,InstrNum,ChanNum,PattNum)
  42.     FOR i:=0 TO InstrNum-1 DO PrintF('\t%s\n',InstNames[i])
  43.  
  44.     WHILEN CtrlC() DO Delay(10)
  45.  
  46.     DBM_StopModule()
  47.  
  48. EXCEPTDO
  49.     DEF    str:PTR TO CHAR
  50.     IF Mod THEN Dispose(Mod)
  51.     IF DBPlayerBase THEN CloseLibrary(DBPlayerBase)
  52.     SELECT exception
  53.     CASE "DBPL";    str:='Cannot open dbplayer.library, version %d\n'
  54.     CASE "ASLL";    str:='Cannot open asl.library version 37!\n'
  55.     CASE "ASLI";    str:='Cannot init AslRequester!\n'
  56.     CASE "ASLR";    str:='Cannot open AslRequester!\n'
  57.     CASE "FILE";    str:='Cannot open the module!\n'
  58.     CASE "PLAY";    str:='Cannot play the module!\n'
  59.     CASE "MEM";        str:='Not enough memory!\n'
  60.     DEFAULT;            str:=NIL
  61.     ENDSELECT
  62.     IF str THEN PrintF(str,DBPLAYER_VERSION)
  63. ENDPROC
  64.